Today, many personal electronic devices come equipped with digital video cameras. Often, the cameras in these devices perform many functions, such as: image capture, video capture, and videoconferencing. Videoconferencing with handheld and/or mobile personal electronic devices is a much more difficult endeavor than traditional videoconferencing applications, wherein the camera is mostly fixed and the lighting and/or composition of the scenery around the videoconferencing participant(s) does not often change drastically. Thus, it is important that digital video cameras in handheld and/or mobile personal electronic devices be able to capture visually appealing images in a wide variety of lighting and scene conditions with limited or no interaction from the user, while at the same time allowing for the video encoding of the captured image frames to be carried out in the most computationally effective and visually appealing manner.
One feature that has been implemented in some digital cameras to compensate for the lack of dynamic range of the relatively small image sensors typically found in handheld and/or mobile personal electronic devices is known as “auto exposure.” Auto exposure (AE) can be defined generally as any algorithm that automatically calculates and/or manipulates certain camera exposure parameter values, e.g., exposure time, gain, or f-number, in such a way that the currently exposed scene is captured in a desired manner. For example, there may be a predetermined optimum brightness value for a given scene that the camera will try to achieve by adjusting the camera's exposure value. Exposure value (EV) can be defined generally as: log2N2/t, wherein N is the relative aperture (f-number), and t is the exposure time (i.e., “shutter speed”) expressed in seconds. Some auto exposure algorithms calculate and/or manipulate the exposure parameters, e.g., the camera's gain, such that a mean, center-weighted mean, median, or more complicated weighted value (as in matrix-metering) of the image's brightness will equal a predetermined optimum brightness value in the resultant, auto exposed scene.
In particular, AE methods that are tuned for fixed camera videoconferencing applications typically “meter,” i.e., calculate the brightness, on a relatively large area of the image, with a reasonably tight “AE stability region,” i.e., range of acceptable brightness values, centered around a fixed, target brightness value (an “AE Target”). In such fixed camera videoconferencing applications, the target brightness value may often be set at or above 18% of the maximum capturable signal strength of the image sensor. The relatively high target brightness values and relatively tight stability regions typically employed in fixed camera videoconferencing applications can be problematic for handheld and/or mobile videoconferencing applications, in which the scene can be strongly back lit or front lit, and in which the scene lighting levels can change often and dramatically.
In mobile videoconferencing applications, it is also paramount to ensure the highest possible video quality at the lowest possible bit rate. Existing video codec standards today, e.g., H.263 or H.264, employ both inter-coding and intra-coding techniques. Intra-coding techniques are performed relative to information that is contained only within the current video frame and not relative to any other frame in the video sequence. Inter-coding techniques, on the other hand, involve temporal processing, that is, rather than reseeding all the information for a subsequent video frame, the codec will only encode and send the changes in pixel location and pixel values from one video frame to the next video frame, while making “temporal predictions” to attempt to take advantage of temporal redundancy between subsequent image frames, thus allowing for higher compression rates. This is an effective technique because, often, a large number of the pixels will not change from one video frame to the next, and it would be redundant to resend all the image information with each video frame. However, the more gradually an AE method changes exposure parameter values, the longer the image frame's average brightness levels are changing, thus making it more difficult for the encoder to make accurate temporal predictions for inter-coding.
Thus, there is need for systems, methods, and a computer readable medium for intelligently and dynamically setting a digital video camera's exposure parameters in such a way as to lead to visually pleasing images and efficiently encoded video streams in handheld and/or mobile videoconferencing applications.